package com.reeygu.utils;

import cn.hutool.core.io.FileUtil;
import freemarker.template.Configuration;
import freemarker.template.Template;

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;

/**
 * @describe: 生成动态文件
 * @author: ReeyGu
 * @data: 2024/3/30 14:48
*/
public class GeneratorDynamicFile {

    /**
     * @describe: 测试方法
     * @author: ReeyGu
     * @data: 2024/3/30 14:48
     * @param srcUrl 模板路径
     * @param fileName 模板名称
     * @param outputName 输出路径
     * @param obj 参数对象
    */
    public static void LoadConfiguration(String srcUrl, String fileName, String outputName, Object obj) throws Exception{
        // new 出 Configuration 对象，参数为 FreeMarker 版本号
        Configuration configuration = new Configuration(Configuration.VERSION_2_3_32);
        File file = new File(srcUrl);
        // 指定模板文件所在的路径
        configuration.setDirectoryForTemplateLoading(file);
        // 设置模板文件使用的字符集
        configuration.setDefaultEncoding("gbk");
        // 创建模板对象，加载指定模板
        Template template = configuration.getTemplate(fileName);
        if(!FileUtil.exist(outputName)) {
            FileUtil.touch(outputName);
        }
        // 生成
        Writer out = new FileWriter(outputName);
        template.process(obj, out);
        // 关闭
        out.close();
    }
}
